//javascript模块化
var seckill = {
	URL:{
		now:function(){
			return '/seckill/seckill/time/now';
		},
		exposer:function(seckillId){
			return '/seckill/seckill/' + seckillId + '/exposer';
		},
		execution:function(seckillId, md5){
			return '/seckill/seckill/' + seckillId + '/' + md5 + '/execution';
		}
	},	
	handleSeckillKill:function(seckillId, node){
		//处理秒杀逻辑
		node.hide().html('<button class="btn btn-prumary btn-lg" id="killBtn">开始秒杀</button>')
		$.post(seckill.URL.exposer(seckillId), function(result){
			//在回调函数中执行交互
			if(result && result['success']){
				var exposer = result['data'];
				if(exposer['exposed']){
					//开启秒杀
					//获取秒杀地址
					var md5 = exposer['md5'];
					var killUrl = seckill.URL.execution(seckillId, md5);
					console.log('killUrl:' + killUrl);
					$('#killBtn').one('click', function(){
						//执行秒杀请求
						$(this).addClass('disabled');
						$.post(killUrl, function(result){
							if(result && result['success']){
								var killResult = result['data'];
								var state = killResult['state'];
								var stateInfo = killResult['stateInfo'];
								node.html('<span class="label label-success">' + stateInfo + '</span>');
							}
						})
					});
					node.show();
				} else {
					//未开启秒杀
					var now = exposer['now'];
					var start = exposer['start'];
					var end = exposer['end'];
					//重新计算逻辑
					seckill.countdown(seckillId, now, start, end);					
				}
			} else {
				console.log('result:' + result);
			}
		});
	},
	//验证手机号
	validatePhone:function(phone){
		if(phone && phone.length == 11 && !isNaN(phone)){
			return true;
		}else{
			return false;
		}
	},
	countdown:function(seckillId, nowTime, startTime, endTime){
		var seckillBox = $('#seckill-box');
		if(nowTime > endTime){
			//秒杀结束
			seckillBox.html('秒杀结束！');
		} else if(nowTime < startTime){
			var killTime = new Date(startTime + 1000);
			seckillBox.countdown(killTime, function(event){
				var format = event.strftime('秒杀倒计时：%D天  %H时 %M分 %S秒');
				seckillBox.html(format);
			}).on('finish.ountdown', function(){
				seckill.handleSeckillKill(seckillId, seckillBox);
			});
		} else {
			seckill.handleSeckillKill(seckillId, seckillBox);
		}
	},
	detail:{	
		//详情页初始化
		init:function(params){
			//手机验证和登录，计时交互
			//规划我们的交互流程
			//在cookie中查找手机号		
			var seckillId = params['seckillId'];
			//验证手机号
			var killPhone = $.cookie('killPhone');
			if(!seckill.validatePhone(killPhone)){
				//绑定手机号
				var killPhoneModal = $('#killPhoneModal');
				killPhoneModal.modal({
					show:true,//显示弹出层
					backdrop:'static',//禁止位置关闭
					keyboard:false//关闭键盘事件
				});
				$('#killPhoneBtn').click(function(){
					var inputPhone = $('#killPhoneKey').val();
					console.log('inputPhone:' + inputPhone);
					if(seckill.validatePhone(inputPhone)){
						//电话写入cookie
						$.cookie('killPhone', inputPhone, {expires:7, path:"/seckill"});
						window.location.reload();
					} else {
						$('#killPhoneMessage').hide().html('<label class="label label-danger">手机号错误</label>').show(300);
					}
				});
			}
			//已经登录
			//计时交互			
			var startTime = params['startTime'];
			var endTime = params['endTime'];
			$.get(seckill.URL.now(), function(result){
				if(result && result['success']){
					var nowTime = result['data'];
					//时间判断
					seckill.countdown(seckillId, nowTime, startTime, endTime)
				} else {
					console.log('result:' + result);
				}
			});
		}
	}
}